                         WinAGI Game Development System
                                    ©2005 - 2018
		                by Andrew Korson
                                   
                   =============================================                                  
                    Version 1.2.3 BETA BUG/FEATURE REQUEST LIST
                   =============================================

GENERAL/PREVIEW/TREELIST:
FIXED: still have logic resources that don't seem to unload when expected; found one issue with compiling/saving that I thought fixed this, but still getting some that aren't unloaded; (i think it is in logic editor MenuClickSave; it loads the INGAME logic but doesn't unload it; LogicEdit (the local copy) is unloaded when the Form unloads, but not the INGAME logic)

FIXED: dbl-clicking a view resource with 'hidepreview' set to TRUE sets focus to topmost open window, instead of the view being opened

FIXED: splitter icons for resource and tree/warnings panels look funny; changed them to built-in splitter icons

FIXED: default preview window is too small, and will generate an error if trying to preview a picture

FIXED: command line option doesn't work for pictures (it tries to open a property file looking for the background info, and gets stuck in a loop)

FIXED: renumber and ID/Description edits don't choose correct resource when the resource being previewed is different than the currently active editor/window

ADDED: when changing IDs, there is an option to change all instances in logics to the new ID; user needs to be aware that all instances (in comments, in text, or wherever) are gonna get replaced 

FIXED: errors in reserved define overrides get reset to default if they are found to violate rules when WinAGI starts (would only happen if user edited config file manually incorrectly)

FIXED: complete rebuild of reserved defines; add default field to define type definition to more easily manage changes to reserved names (maybe a bit more testing to verify it's OK)

FIXED: loading resources during initial game opening should not add entry to WAG file until AFTER resource has been validated

FIXED: pressing stop in sound preview does not re-enable the instrument/track controls

FIXED: closing a game should clear the property file object

FIXED: UseResNames and ReservedAsText features not working correctly (UseResNames was resetting to FALSE incorrectly, and when UseResNames is false, ReservedAsText for decompiling should be N/A)

CHANGED: decompiling should put brackets on separate lines

FIXED: tools menu wasn't correctly setting default directory and giving usable error info when a link didn't work

NO CHANGE: should I drop reserved defines? include them as default globals, and alert if being deleted? No, users can easily disable the function, and maybe there's one person out there who might like it.

ADDED: need a progress bar to show when loading a game

CHANGED: default font for preview and editors to Consolas

FIXED: reset button for sounds was never coded; it is now

CHANGED: default instrument for sounds is now Lead (square), instead of Acoustic Grand Piano

ADDED: improved options and control for platforms to run a game from within WinAGI

ADDED: when choosing DOSBOX, the actual MSDOS file (usually agi.exe) might have a different name; added DOSExec property that will let user choose the dos file that gets run (either the loader 'kq1.com', or the decrypted AGI file 'agi.exe')

FIXED: settings function has major bug; if searching for a key that is a substring of another key, the function will try to read that other key (example: "Platform" vs "PlatformOpts"; searching for "Platform" screws up when it encounters "PlatformOpts")

FIXED: closing WinAGI with a logic being previewed causes an error because the game unloads before the preview logic is destroyed (set to nothing); when the game unloads, the property list is set to nothing, then when the logic is unloaded, it tries to save the reslength property

FIXED: FINALLY!!! creating new games (from templates or from scratch) wasn't saving all properties correctly; this led to the wrong resource directory being used (and other properties not looking correct); fixed by forcing all initializing properties to update after creating the game, and then forcing the property file to save to disk

FIXED: and now the 'blank' new game feature is working correctly

ADDED: new from blank should include logic 0

FIXED: the default palette loaded in the palette edit form had most values wrong! fixed to match exact rgb values specified in help file, and also confirmed they match WinAGI.dll defaults

FIXED: the list tree gets slightly wider each time a game is opened; it should stay the same from session to session

FIXED: when creating new room, the matching picture is not unloaded

FIXED: can't copy text from logic preview window

ADDED: add a context menu to the logic preview that only shows copy and select all

CHANGED: the start/stop button for loop preview would work better if it was a single button that changed between start/stop

FIXED: changing just description doesn't need to update ID

DONE: check boilerplate text for new logics that are rooms; might need to update it (it should use reserved variable names and reserved constants as appropriate)

DONE: Template games need a good scrubbing. Logic Source Code got left out somehow.

DONE: include AGI Decrypter with setup; put it in WinAGI directory, and set it up as first tool

* at random times, clicking cancel on the game properties window blanks every control out (like it closes, then re-opens with none of the fields filled in), and then tries to save the game instead of canceling; unable to duplicate, but when it happens if effs things up royally

NO CHANGE: trying to trap ALT key combos causes a 'ding' in dev environment. Confirmed it doesn't do this after compilation.




LOGIC EDITOR/COMPILER: 
FIXED: defines tooltip not working; when hovering over a flag after previously hovering over a variable, the list doesn't get reset, so the flag won't show the define info

ADDED: a character picker for extended chars added; use CTRL+INSERT to display it

FIXED: in certain situations, the rtf editor will get stuck with screen updating disabled (Freeze set, but Unfreeze not called)

CHANGED: block comments (/* ... */) are not canon and kill performance; removed support for them

ADDED: added a 'block comment' function that inserts a comment marker (the bracket, not the dbl-slash) at start of each selected line (and also added 'unblock comment' function)

CHANGED: in all cases where comments are managed internally (AnalyzeExit function for example) changed the comment marker from '//' to '['

FIXED: with new rtf editor, regular dbl-slash comments don't work anymore; they highlight normally, as if no comment was there

FIXED: bug in Save function will cause error if the logic being saved is a Room and also is being previewed

FIXED: should NOT allow IsRoom property to be set for logic zero by using the Resource menu

FIXED: tooltip for defines list shows all the time, instead of only showing when hovering over an item

ADDED: why are picture IDs not included in Insert Defines list? need to add them

FIXED: when a define is overridden, Defines list should only show the highest priority value

FIXED: tip on the defines list shouldn't be shown if over the scrollbar, because mouse moves don't occur there and the tip doesn't get erased correctly

ADDED: support for pre-increment/decrement (++v# and --v#) 

FIXED: backspace doesn't work when defines list is visible

FIXED: pasting lines doesn't seem to include the last CR (need to compile and update the OCX)

FIXED: dbl-click selects entire word +1 extra space- we don't WANT that extra space

NOT AN ISSUE: found this in logic0 (line ~930, also 1684 too) for kq3: //WARNING: unknowntest19 ; need to make sure decompiler isn't still throwing this out there- must have been a glitch that I fixed awhile ago

CHANGED: for messages, instead of warning 5097 (undefined msgs less than msg count), keep track of message declare status; if a command tries to use an undefined message, THEN toss up a warning; it doesn't hurt to skip numbers as long as you don't try to use them

ADDED: need to add variables to 'if' statements as boolean i.e. if(v0) as valid syntax

CHANGED: for large games (with lots of resources and defines), building the list of defines for the tips feature takes significantly long time, like several seconds, which makes the logic editor appear to freeze and look sluggish. I tweaked the function to improve speed by removing words and inventory objects, and also only reload when a change is made to the text. But it's still very slow.

ADDED: an option in settings to disable define tool tips in logic editor; useful when editing large games with lots of resources and defines, which really drags on the system

FIXED: pasting with menu paste option is adding a carriage return; pasting using ctrl+v does not

ADDED: support for ':label' syntax in addition to 'label:'

FIXED: pasting with keyboard is not formatting the pasted text if it exceeds one line; fixed by overriding the keyboard paste function and use the menu paste function instead

FIXED: gameabout and gamever defines aren't including the quote marks in tool tips

ADDED: the new logic template is now a text file that can be edited by user; if the text file is missing, then the internal resource is used as a backup

FIXED: when define list is showing, define tip for defines in logic that are under the define list are showing; define tips should not be shown when the list box is present

FIXED: the syntax tip for reverse.loop is incorrect; it should be "obj oA, flg fDONE"

FIXED: if context menu is showing, disable tip timer

FIXED: OMG! major bug in compiler!! it doesn't check for the beginning curly bracket after an 'if' or 'else' statement

FIXED: message section rebuilder doesn't add the extra comment line ([*****) at start of message section

* during some paste operations, the line immediately following the pasted text appears to be unformatted; haven't figured out exact steps to duplicate it yet though




COMPILER WARNING WINDOW:
FIXED: zounds!!! warning 5100 is WRONG! object WILL move if stepsize is zero; I think it means use current step size? how did I miss that? OK, here's the story; AGI copies the object's current stepsize into the parameter area at end of obj table entry; if the passed stepsize>0, it temporarily changes the object's stepsize;  when the object reaches it's destination, the original stepsize is restored

FIXED: It's v3.002.098 that added f20 not .102

FIXED: flag f2 (haveInput) doesn't need a warning if changed

FIXED: the warning window gets closed when a game is closed, but not cleared; the errors in the list will still be there when another game is loaded

ADDED: for error 4089, show an example of bad define (v99=currantRoom; or currentRoom=BOTOM_EDGE)

FIXED: print.at with bad parameters doesn't cause error UNLESS the spacing works out exactly

FIXED: when a message that is pre-defined has extended characters, don't need to double-warn if it shows up in the logic as a literal string




PICTURE EDITOR:
FIXED: some Sierra pictures have invalid pixels, which technically are a buffer overflow, but in original AGI, it didn't really matter because of the memory locations affected. Effect is the pixel is ignored; updated WinAGI to ignore the occasional invalid pixel instead of throwing an error.

FIXED: the export image feature shows a blank box while exporting- the wait message isn't showing

ADDED: set.pri.base feature, lets user adjust priority base for pictures that are v2.936 or higher or not in a game

FIXED: for some reason, the priority band lines on visual screen show thicker than one pixel when scale changes (I had previously added some temporary code to change drawwidth so pixel selection would change based on scale, but I don't think I need it' pixel highlighting looks OK at all scales with width of 1)

FIXED: when only visual screen is shown, the 'show priority screen' menu item isn't working

FIXED: deleting last coordinate in a draw command causes coordinate list to stop updating

CHANGED: check color change algorithm; it should only change existing color if selected command is a color change; otherwise add a new color change

FIXED: pasting commands exposed bug in key-handling; the list box uses key-presses to automatically select list items; this caused interference when using keyboard commands (pressing CTRL+V tries to select a list item starting with 'V'). Fixed by using KeyPress event to ignore key presses

FIXED: Insert Coords command wasn't finished for plots and fills

ADDED: pasting is now possible when multiple items are selected; the new commands are added to the end of the selection

FIXED: if commands include End, copy is disabled; instead, it should allow copy, but just ignore the end command

ADDED: when the inserted coordinate is the last one, it would make more sense to select it instead of the one above

FIXED: when using area select to grab a bitmap section, clicking inside the selected area is mistakenly treated as moving selected commands, which ends up always causing an error 'tool is getting reset in mousemove; tracking it down now

FIXED: changing zoom when selection bound is showing causes it to stop flashing

FIXED: when changing focus from a picture editor to another form, and then back, the split location is shrinking the upper panel

FIXED: switching to test should deselect coordinate editing




SOUND EDITOR:
FIXED: show/hide keyboard menu item doesn't update when first executed

FIXED: when 'show only selected track' is enabled, choosing the root tree item should hide the track 

ADDED: the 'show only selected track' option should be per editor, not applied to all at once

FIXED: default instrument when editing sounds is still piano; need to force it to synth

FIXED: cursor value (time) is off (forgot about conversion to 60ths)

* there are still a fair number of times where selection values aren't quite right, but not sure I'm gonna track them down at this point




VIEW EDITOR: 
FIXED: flipping selected areas when part of the selection is outside the cel boundary causes an error

FIXED: undoing a move selection when part of the selection is off screen does not correctly restore the cel (the underlying stuff is wrong)

ADDED: dbl-clicking the preview view in editor will change background color same as the preview window

FIXED: pasting bitmap should automatically select the 'select' tool

CHANGED: the start/stop button for loop preview would work better if it was a single button that changed between start/stop




OBJECT EDITOR:
FIXED: searching for partial words not working; InstrB() returns FALSE for searches where Instr() returns TRUE




WORD EDITOR:




TEXT EDITOR:
ADDED: block comment/uncomment buttons/menu items/shortcuts




LAYOUT EDITOR: 
FIXED: If rebuilding, rooms that are not marked 'IsRoom' are skipped; works better to turn them back on, or rooms might be missed. Now, all rooms are examined, and any rooms that have a new.room command, or are the target of a new.room command are labeled as rooms; rest are set to non-rooms

FIXED: glitch in extract layout causes error if an edge test (v2) does not have a valid direction (1-4)

FIXED: glitch in adding exit lines when the start and end objects have exact same coordinates

CHANGED: streamlined the exit analyzer functions into a single, with switches to handle the slight differences between extracting a layout from scratch vs rebuilding an existing layout

CHANGED: exits to a non-Room logic no longer show error, instead they show a grayed out exit line pointing to nothing

FIXED: depending on whether you move the 'from' end or 'to' end of a two-way exit, the order in which the two exits get moved matters; there was a bug in that one the two had the exit moves backwards, resulting in an error when the second one moved, and tried to find a reciprocal exit

FIXED: when changing a game's directory, clicking the button should default to the current directory, if there is one

ADDED: for IDs that are too long to fit in the room box just run extra characters to next line down; see how it looks, and if it's OK, keep it --

ADDED: BETTER YET: if the entire ID doesn't fit, use tooltip feature to show it if hovering over the room

FIXED: insert room is adding wrong text for edgeEgoHit (it's still using ego_edge_code); it should use whatever is the current form for reserved variable v2 (it's in the NewExitText function)

FIXED: default is supposed to show pics for rooms; the menu is correct, but the actual behavior is hiding the pics




GLOBALS EDITOR: 
FIXED: game open globals editor open; clicking toolbar button should just switch to window; menu should offer choice to open different file

FIXED: when pressing TAB on the last entry, a new entry is added, but if nothing is typed, it ends up leaving a blank name with a single space for value; instead, behavior should be same as when pressing ENTER; no need to add a new row, it'll get created automatically when user starts typing

FIXED: importing a defines file where tabs are used instead of spaces doesn't import correctly

FIXED: comments at the end of an imported define line are being added to the define value instead of being ignored

FIXED: reserve name editor not working; the name isn't displaying when dbl-clicked, but it is accepting text (z-order is off)

FIXED: pressing ESC while editing a reserved name should just stop editing, not close the editor

FIXED: deleting a reserved name should restore default

FIXED: need to re-assign default reserved define values; original Sierra values are better pick for most of them (and update help files)

FIXED: when adding items to globals list, need to properly deal with embedded quotes

NO CHANGE: use initLog as reserved define, not newRoom; go with the history! Nah, on third thought, stick with newRoom; no one's going to use these anyway

CHANGED: global.txt format changed to match syntax for include files, instead of just list of tab separated items

ADDED: user can choose to have changed global names replaced in all logics

CHANGED: reserved variable unknownWord should be unknownWordNum

FIXED: carriage returns don't work in replace form

FIXED: the replace changed globals isn't working; seems to be the sort feature is not also sorting the first column where original names are saved? and also, the first column needs to be updated after saving, in case user keeps editing

FIXED: clicking on top line automatically scrolls the global list; it should NOT do that

FIXED: copy doesn't put the define text on windows clipboard




MENU EDITOR: 
ADDED: if choosing a logic with no menu, should allow user to create a new menu

FIXED: default button function changed to cancel, but it still says 'default'




SETTINGS:




HELP FILE:
FIXED: buttons on the shortcuts page aren't showing up; get the 'x' that usually means file not found (caused by backslashes being treated as control codes in the script)

ADDED: undocumented special escape code '\0' at message end tells AGI NOT to include a trailing zero at end of message; this might be useful in managing the set.string hack

NOTED: similarly, can we include zeros inside a message and then assign it to a string? need to check the code that copies internal text - rats! stringcopy will stop if zero found (means using set.string to insert code won't copy zeros easily; will have to do them one at a time by progressively shrinking the string to write i.e. abc0, then ab0, then a0 in order to create a000)

FIXED: when syntax error is a problem for special syntax test/assignment commands, should mention in help file that it might be due to reserved defines being disabled

FIXED: update help file for block comments

FIXED: update help file for change logics (when changing IDs) need to update help files (in changeID discussion)

ADDED: updated logic editor help topic to explain new option to disable define tool tips

ADDED: updated picture editor help topic to explain command to change priority base

ADDED: updated layout editor help to explain grayed out exit lines (they are valid exits, but they point to hidden rooms)

ADDED: update view editor help to cover preview option

ADDED: update Game Property discussion to explain platform options

ADDED: another update to the properties topic needed; form is slightly different, and new DOSExec property

NO CHANGE: tables also are different sized (like pictures) when help file is opened by the app vs. when opened by windows explorer; so if they look bad in the explorer view, they are probably OK in app view

UPDATED: make sure dbl click on view preview and view edit preview is covered in Help file (it changes background color)

FIXED: encountering a new room does not change/reset graphic display mode

FIXED: cycling objects discussion refers to 'stop.cycling' for example of managing ego's movement, but that's not right




*********************TESTER BUGS/COMMENTS*********************

FIXED: After creating new template game (version 2 w version 3), I get the following warnings:
Warnings are just that- warnings; your logic will compile. But f2 (input_received) is modified by programmers often enough that I have removed it from this particular warning, so it won’t show up anymore. Regarding the message warning, I think I can add dynamic text that indicates the ranges of missing msgs, but I need to think about it before I decide for sure 

FIXED: When opening an existing game, and selecting "Compile game" from the menu, the compiler fails when attempting to compile the decompiled version of the code

FIXED: Pasting text is either very slow or locks up the editor.


Suggestions
- Default to a synth instrument (e.g. "Lead 1 (square)") for sounds, as the default of "Accoustic grand piano" isn't really suitable for sound effects
CHANGED: the default instrument for sound tracks is now the "Lead 1 (square)" instrument (#80)

- Option to use DosBox or ScummVM to run the game. The DOS interpreters don't work under Windows 10 (64-bit).
ADDED: explicit support for DosBox, ScummVM and NAGI, as well as a generic option to choose an executable file to run games

- In the layout editor, when displaying room pictures, adjust the aspect ratio of the boxes to give more width/height. Currently the text "Logic XXX" occupies nearly half the vertical space; rectangles here would be better than squares
NO CHANGE: this would not be an easy change; so no change will be made at this time

- I would actually suggest displaying room pictures in the layout editor by default, as it makes the layout diagram immediately easier to understand
CHANGED: by default, all pictures are shown in the layout editor. Also added a setting so that pictures will be shown/not shown when new rooms are added, depending on the selected settings.

- In the view editor, it would be nice to have the animation active and visible in a separate part of the window, so you can immediately see the effects of changes you make during editing. Have a look at https://www.piskelapp.com for an example (other elements of its UI might be worth incorporating as well).
ADDED: preview pane added to view editor; it can be hidden by using show/hide option on edit menu.

- The pictures in the help file are too large; when viewing the file with the help window maximised some of them barely fit on screen (note I'm running windows in I think HiDPI mode, via VMWare fusion - not sure if this affects the image sizes).
FIXED: Turns out, the help file program shows pictures at a different size when opened from within the application compared to what it shows me while building it. All images have been resized so they show correctly when help file is run from within WinAGI. 



